home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-12 | 61.8 KB | 1,624 lines | [TEXT/CCL2] |
-
- (in-package :TRAPS) ; ***********************************************************
- ;
- ; Created: Monday, November 8, 1993 11:28 AM
- ; OCE.p
- ; Pascal Interface to the Macintosh Libraries
- ;
- ; Copyright Apple Computer, Inc. 1990-1993
- ; All rights reserved
- ;
- ; ***********************************************************
-
- ; $IFC UNDEFINED UsingIncludes
- ; $SETC UsingIncludes:= 0
- ; $ENDC
-
- ; $IFC NOT UsingIncludes
-
- ; $ENDC
-
- ; $IFC UNDEFINED UsingOCE
- ; $SETC UsingOCE:= 1
-
- ; $I+
- ; $SETC OCEIncludes:= UsingIncludes
- ; $SETC UsingIncludes:= 1
-
- ; $IFC UNDEFINED UsingAliases
-
- (require-interface 'ALIASES) ; $I $$Shell(PInterfaces)Aliases.p; for AliasPtr
- ; $ENDC
-
- ; $IFC UNDEFINED UsingAppleEvents
-
- (require-interface 'APPLEEVENTS); $I $$Shell(PInterfaces)AppleEvents.p; for DescType
- ; $ENDC
-
- ; $IFC UNDEFINED UsingScript
-
- (require-interface 'SCRIPT) ; $I $$Shell(PInterfaces)Script.p; for smRoman
- ; $ENDC
-
- ; $IFC UNDEFINED UsingTypes
-
- (require-interface 'TYPES) ; $I $$Shell(PInterfaces)Types.p
- ; $ENDC
-
- ; $SETC UsingIncludes:= OCEIncludes
-
- ;
- ; All utility routines defined here are callable at interrupt level. Currently,
- ; this is done at the expense of not using the international utilities package
- ; for STRING comparisons (we just use the ROM-based RelString trap).
- ;
-
- ;
- ; Defines for the trap selector values.
- ;
- ; Note: Some selector values also chosen from this same range of numbers appear
- ; in the file OCEMessaging.h. Check there before you add a new value.
- ;
-
- (defconstant $kOCECopyCreationID 768)
- (defconstant $kOCECopyDirDiscriminator 769)
- (defconstant $kOCECopyLocalRecordID 770)
- (defconstant $kOCECopyPackedDSSpec 771)
- (defconstant $kOCECopyPackedPathName 772)
- (defconstant $kOCECopyPackedRLI 773)
- (defconstant $kOCECopyPackedRecordID 774)
- (defconstant $kOCECopyRLI 775)
- (defconstant $kOCECopyRString 776)
- (defconstant $kOCECopyRecordID 777)
- (defconstant $kOCECopyShortRecordID 778)
- (defconstant $kOCEDuplicateRLI 779)
- (defconstant $kOCEEqualCreationID 780)
- (defconstant $kOCEEqualDirDiscriminator 781)
- (defconstant $kOCEEqualDSSpec 782)
- (defconstant $kOCEEqualLocalRecordID 783)
- (defconstant $kOCEEqualPackedDSSpec 784)
- (defconstant $kOCEEqualPackedPathName 785)
- (defconstant $kOCEEqualPackedRecordID 786)
- (defconstant $kOCEEqualPackedRLI 787)
- (defconstant $kOCEEqualRecordID 788)
- (defconstant $kOCEEqualRLI 789)
- (defconstant $kOCEEqualRString 790)
- (defconstant $kOCEEqualShortRecordID 791)
- (defconstant $kOCEExtractAlias 792)
- (defconstant $kOCEGetDSSpecInfo 793)
- (defconstant $kOCEGetIndAttributeType 794)
- (defconstant $kOCEGetIndRecordType 795)
- (defconstant $kOCEGetXtnType 796)
- (defconstant $kOCEIsNullPackedPathName 797)
- (defconstant $kOCENewLocalRecordID 798)
- (defconstant $kOCENewRLI 799)
- (defconstant $kOCENewRecordID 800)
- (defconstant $kOCENewShortRecordID 801)
- (defconstant $kOCEPackDSSpec 802)
- (defconstant $kOCEPackPathName 803)
- (defconstant $kOCEPackRLI 804)
- (defconstant $kOCEPackRLIParts 805)
- (defconstant $kOCEPackRecordID 806)
- (defconstant $kOCEPackedDSSpecSize 807)
- (defconstant $kOCEPackedPathNameSize 808)
- (defconstant $kOCEPackedRLIPartsSize 809)
- (defconstant $kOCEPackedRLISize 810)
- (defconstant $kOCEPackedRecordIDSize 811)
- (defconstant $kOCEDNodeNameCount 812)
- (defconstant $kOCERelRString 813)
- (defconstant $kOCESetCreationIDtoNull 814)
- (defconstant $kOCEUnpackDSSpec 815)
- (defconstant $kOCEUnpackPathName 816)
- (defconstant $kOCEUnpackRLI 817)
- (defconstant $kOCEUnpackRecordID 818)
- (defconstant $kOCEValidPackedDSSpec 819)
- (defconstant $kOCEValidPackedPathName 820)
- (defconstant $kOCEValidPackedRecordID 821)
- (defconstant $kOCEValidPackedRLI 822)
- (defconstant $kOCEValidRLI 823)
- (defconstant $kOCEValidRString 824)
- (defconstant $kOCECToRString 825)
- (defconstant $kOCEPToRString 826)
- (defconstant $kOCERToPString 827)
- (defconstant $kOCEPathFinderCID 828)
- (defconstant $kOCEStreamPackedDSSpec 829)
-
- (defconstant $kOCENullCID 836)
- (defconstant $kOCEGetAccessControlDSSpec 837)
- (defconstant $kOCEGetRootPackedRLI 838)
-
- (def-mactype :OCERECORDTYPEINDEX (find-mactype :SIGNED-INTEGER))
- (def-mactype :OCEATTRIBUTETYPEINDEX (find-mactype :SIGNED-INTEGER))
-
- ;
- ; All these standard definitions begin with the Apple symbol (not shown here).
- ;
- ; NOTE: To access these, you must call OCEGetIndRecordType or OCEGetIndAttributeType
- ; with the proper index. These routines return pointers to the standard type.
- ; This was done so that code fragments (INITs, CDEVs, DSAMs, etc). which cannot
- ; use global data can also use these.
- ;
-
- ; Indices for the standard definitions for certain record types (OCERecordTypeIndex):
-
- (defconstant $kUserRecTypeNum 1); "User"
- (defconstant $kGroupRecTypeNum 2); "Group"
- (defconstant $kMnMRecTypeNum 3) ; "AppleMail™ M&M"
- (defconstant $kMnMForwarderRecTypeNum 4); "AppleMail™ Fwdr"
- (defconstant $kNetworkSpecRecTypeNum 5); "NetworkSpec"
- (defconstant $kADAPServerRecTypeNum 6); "ADAP Server"
- (defconstant $kADAPDNodeRecTypeNum 7); "ADAP DNode"
- (defconstant $kADAPDNodeRepRecTypeNum 8); "ADAP DNode Rep"
- (defconstant $kServerSetupRecTypeNum 9); "Server Setup"
- (defconstant $kDirectoryRecTypeNum 10); "Directory"
- (defconstant $kDNodeRecTypeNum 11); "DNode"
- (defconstant $kSetupRecTypeNum 12); "Setup"
- (defconstant $kMSAMRecTypeNum 13); "MSAM"
- (defconstant $kDSAMRecTypeNum 14); "DSAM"
- (defconstant $kAttributeValueRecTypeNum 15); "Attribute Value"
- (defconstant $kBusinessCardRecTypeNum 16); "Business Card"
- (defconstant $kMailServiceRecTypeNum 17); "Mail Service"
- (defconstant $kCombinedRecTypeNum 18); "Combined"
- (defconstant $kOtherServiceRecTypeNum 19); "Other Service"
- (defconstant $kAFPServiceRecTypeNum 20); "Other Service afps"
-
- (defconstant $kFirstOCERecTypeNum #$KUSERRECTYPENUM); first standard OCE record type
- (defconstant $kLastOCERecTypeNum #$KAFPSERVICERECTYPENUM); last standard OCE record type
- (defconstant $kNumOCERecTypes (- #$KLASTOCERECTYPENUM (+ #$KFIRSTOCERECTYPENUM 1)))
-
- ; Indices for the standard definitions for certain attribute types (OCEAttributeTypeIndex):
-
- (defconstant $kMemberAttrTypeNum 1001); "Member"
- (defconstant $kAdminsAttrTypeNum 1002); "Administrators"
- (defconstant $kMailSlotsAttrTypeNum 1003); "mailslots"
- (defconstant $kPrefMailAttrTypeNum 1004); "pref mailslot"
- (defconstant $kAddressAttrTypeNum 1005); "Address"
- (defconstant $kPictureAttrTypeNum 1006); "Picture"
- (defconstant $kAuthKeyAttrTypeNum 1007); "auth key"
- (defconstant $kTelephoneAttrTypeNum 1008); "Telephone"
- (defconstant $kNBPNameAttrTypeNum 1009); "NBP Name"
- (defconstant $kQMappingAttrTypeNum 1010); "ForwarderQMap"
- (defconstant $kDialupSlotAttrTypeNum 1011); "DialupSlotInfo"
- (defconstant $kHomeNetAttrTypeNum 1012); "Home Internet"
- (defconstant $kCoResAttrTypeNum 1013); "Co-resident M&M"
- (defconstant $kFwdrLocalAttrTypeNum 1014); "FwdrLocalRecord"
- (defconstant $kConnectAttrTypeNum 1015); "Connected To"
- (defconstant $kForeignAttrTypeNum 1016); "Foreign RLIs"
- (defconstant $kOwnersAttrTypeNum 1017); "Owners"
- (defconstant $kReadListAttrTypeNum 1018); "ReadList"
- (defconstant $kWriteListAttrTypeNum 1019); "WriteList"
- (defconstant $kDescriptorAttrTypeNum 1020); "Descriptor"
- (defconstant $kCertificateAttrTypeNum 1021); "Certificate"
- (defconstant $kMsgQsAttrTypeNum 1022); "MessageQs"
- (defconstant $kPrefMsgQAttrTypeNum 1023); "PrefMessageQ"
- (defconstant $kMasterPFAttrTypeNum 1024); "MasterPF"
- (defconstant $kMasterNetSpecAttrTypeNum 1025); "MasterNetSpec"
- (defconstant $kServersOfAttrTypeNum 1026); "Servers Of"
- (defconstant $kParentCIDAttrTypeNum 1027); "Parent CID"
- (defconstant $kNetworkSpecAttrTypeNum 1028); "NetworkSpec"
- (defconstant $kLocationAttrTypeNum 1029); "Location"
- (defconstant $kTimeSvrTypeAttrTypeNum 1030); "TimeServer Type"
- (defconstant $kUpdateTimerAttrTypeNum 1031); "Update Timer"
- (defconstant $kShadowsOfAttrTypeNum 1032); "Shadows Of"
- (defconstant $kShadowServerAttrTypeNum 1033); "Shadow Server"
- (defconstant $kTBSetupAttrTypeNum 1034); "TB Setup"
- (defconstant $kMailSetupAttrTypeNum 1035); "Mail Setup"
- (defconstant $kSlotIDAttrTypeNum 1036); "SlotID"
- (defconstant $kGatewayFileIDAttrTypeNum 1037); "Gateway FileID"
- (defconstant $kMailServiceAttrTypeNum 1038); "Mail Service"
- (defconstant $kStdSlotInfoAttrTypeNum 1039); "Std Slot Info"
- (defconstant $kAssoDirectoryAttrTypeNum 1040); "Asso. Directory"
- (defconstant $kDirectoryAttrTypeNum 1041); "Directory"
- (defconstant $kDirectoriesAttrTypeNum 1042); "Directories"
- (defconstant $kSFlagsAttrTypeNum 1043); "SFlags"
- (defconstant $kLocalNameAttrTypeNum 1044); "Local Name"
- (defconstant $kLocalKeyAttrTypeNum 1045); "Local Key"
- (defconstant $kDirUserRIDAttrTypeNum 1046); "Dir User RID"
- (defconstant $kDirUserKeyAttrTypeNum 1047); "Dir User Key"
- (defconstant $kDirNativeNameAttrTypeNum 1048); "Dir Native Name"
- (defconstant $kCommentAttrTypeNum 1049); "Comment"
- (defconstant $kRealNameAttrTypeNum 1050); "Real Name"
- (defconstant $kPrivateDataAttrTypeNum 1051); "Private Data"
- (defconstant $kDirTypeAttrTypeNum 1052); "Directory Type"
- (defconstant $kDSAMFileAliasAttrTypeNum 1053); "DSAM File Alias"
- (defconstant $kCanAddressToAttrTypeNum 1054); "Can Address To"
- (defconstant $kDiscriminatorAttrTypeNum 1055); "Discriminator"
- (defconstant $kAliasAttrTypeNum 1056); "Alias"
- (defconstant $kParentMSAMAttrTypeNum 1057); "Parent MSAM"
- (defconstant $kParentDSAMAttrTypeNum 1058); "Parent DSAM"
- (defconstant $kSlotAttrTypeNum 1059); "Slot"
- (defconstant $kAssoMailServiceAttrTypeNum 1060); "Asso. Mail Service"
- (defconstant $kFakeAttrTypeNum 1061); "Fake"
- (defconstant $kInheritSysAdminAttrTypeNum 1062); "Inherit SysAdministrators"
- (defconstant $kPreferredPDAttrTypeNum 1063); "Preferred PD"
- (defconstant $kLastLoginAttrTypeNum 1064); "Last Login"
- (defconstant $kMailerAOMStateAttrTypeNum 1065); "Mailer AOM State"
- (defconstant $kMailerSendOptionsAttrTypeNum 1066); "Mailer Send Options"
- (defconstant $kJoinedAttrTypeNum 1067); "Joined"
- (defconstant $kUnconfiguredAttrTypeNum 1068); "Unconfigured"
- (defconstant $kVersionAttrTypeNum 1069); "Version"
- (defconstant $kLocationNamesAttrTypeNum 1070); "Location Names"
- (defconstant $kActiveAttrTypeNum 1071); "Active"
- (defconstant $kDeleteRequestedAttrTypeNum 1072); "Delete Requested"
- (defconstant $kGatewayTypeAttrTypeNum 1073); "Gateway Type"
-
- (defconstant $kFirstOCEAttrTypeNum #$KMEMBERATTRTYPENUM); first standard OCE attr type
- (defconstant $kLastOCEAttrTypeNum #$KGATEWAYTYPEATTRTYPENUM); last standard OCE attr type
- (defconstant $kNumOCEAttrTypes (- #$KLASTOCEATTRTYPENUM (+ #$KFIRSTOCEATTRTYPENUM 1)))
-
- ; For anyone who absolutely needs a define of the body of the standard record or
- ; attribute type, use these below. CAUTION! All the types below are assumed to be
- ; in character set 'smRoman'. If you try to compare these to some RString or
- ; AttributeType variable, you must take the character set code into account. Future
- ; standard types may be defined using character sets other than 'smRoman'. The
- ; first character of each of these is $F0, the Apple symbol.
- ;
-
- ; Standard definitions for certain record types:
-
- (defconstant $kUserRecTypeBody "aoce User")
- (defconstant $kGroupRecTypeBody "aoce Group")
- (defconstant $kMnMRecTypeBody "aoce AppleMail™ M&M")
- (defconstant $kMnMForwarderRecTypeBody "aoce AppleMail™ Fwdr")
- (defconstant $kNetworkSpecRecTypeBody "aoce NetworkSpec")
- (defconstant $kADAPServerRecTypeBody "aoce ADAP Server")
- (defconstant $kADAPDNodeRecTypeBody "aoce ADAP DNode")
- (defconstant $kADAPDNodeRepRecTypeBody "aoce ADAP DNode Rep")
- (defconstant $kServerSetupRecTypeBody "aoce Server Setup")
- (defconstant $kDirectoryRecTypeBody "aoce Directory")
- (defconstant $kDNodeRecTypeBody "aoce DNode")
- (defconstant $kSetupRecTypeBody "aoce Setup")
- (defconstant $kMSAMRecTypeBody "aoce MSAM")
- (defconstant $kDSAMRecTypeBody "aoce DSAM")
- (defconstant $kAttributeValueRecTypeBody "aoce Attribute Value")
- (defconstant $kBusinessCardRecTypeBody "aoce Business Card")
- (defconstant $kMailServiceRecTypeBody "aoce Mail Service")
- (defconstant $kCombinedRecTypeBody "aoce Combined")
- (defconstant $kOtherServiceRecTypeBody "aoce Other Service")
- (defconstant $kAFPServiceRecTypeBody "aoce Other Service afps")
-
- ; Standard definitions for certain attribute types:
-
- (defconstant $kMemberAttrTypeBody "aoce Member")
- (defconstant $kAdminsAttrTypeBody "aoce Administrators")
- (defconstant $kMailSlotsAttrTypeBody "aoce mailslots")
- (defconstant $kPrefMailAttrTypeBody "aoce pref mailslot")
- (defconstant $kAddressAttrTypeBody "aoce Address")
- (defconstant $kPictureAttrTypeBody "aoce Picture")
- (defconstant $kAuthKeyAttrTypeBody "aoce auth key")
- (defconstant $kTelephoneAttrTypeBody "aoce Telephone")
- (defconstant $kNBPNameAttrTypeBody "aoce NBP Name")
- (defconstant $kQMappingAttrTypeBody "aoce ForwarderQMap")
- (defconstant $kDialupSlotAttrTypeBody "aoce DialupSlotInfo")
- (defconstant $kHomeNetAttrTypeBody "aoce Home Internet")
- (defconstant $kCoResAttrTypeBody "aoce Co-resident M&M")
- (defconstant $kFwdrLocalAttrTypeBody "aoce FwdrLocalRecord")
- (defconstant $kConnectAttrTypeBody "aoce Connected To")
- (defconstant $kForeignAttrTypeBody "aoce Foreign RLIs")
- (defconstant $kOwnersAttrTypeBody "aoce Owners")
- (defconstant $kReadListAttrTypeBody "aoce ReadList")
- (defconstant $kWriteListAttrTypeBody "aoce WriteList")
- (defconstant $kDescriptorAttrTypeBody "aoce Descriptor")
- (defconstant $kCertificateAttrTypeBody "aoce Certificate")
- (defconstant $kMsgQsAttrTypeBody "aoce MessageQs")
- (defconstant $kPrefMsgQAttrTypeBody "aoce PrefMessageQ")
- (defconstant $kMasterPFAttrTypeBody "aoce MasterPF")
- (defconstant $kMasterNetSpecAttrTypeBody "aoce MasterNetSpec")
- (defconstant $kServersOfAttrTypeBody "aoce Servers Of")
- (defconstant $kParentCIDAttrTypeBody "aoce Parent CID")
- (defconstant $kNetworkSpecAttrTypeBody "aoce NetworkSpec")
- (defconstant $kLocationAttrTypeBody "aoce Location")
- (defconstant $kTimeSvrTypeAttrTypeBody "aoce TimeServer Type")
- (defconstant $kUpdateTimerAttrTypeBody "aoce Update Timer")
- (defconstant $kShadowsOfAttrTypeBody "aoce Shadows Of")
- (defconstant $kShadowServerAttrTypeBody "aoce Shadow Server")
- (defconstant $kTBSetupAttrTypeBody "aoce TB Setup")
- (defconstant $kMailSetupAttrTypeBody "aoce Mail Setup")
- (defconstant $kSlotIDAttrTypeBody "aoce SlotID")
- (defconstant $kGatewayFileIDAttrTypeBody "aoce Gateway FileID")
- (defconstant $kMailServiceAttrTypeBody "aoce Mail Service")
- (defconstant $kStdSlotInfoAttrTypeBody "aoce Std Slot Info")
- (defconstant $kAssoDirectoryAttrTypeBody "aoce Asso. Directory")
- (defconstant $kDirectoryAttrTypeBody "aoce Directory")
- (defconstant $kDirectoriesAttrTypeBody "aoce Directories")
- (defconstant $kSFlagsAttrTypeBody "aoce SFlags")
- (defconstant $kLocalNameAttrTypeBody "aoce Local Name")
- (defconstant $kLocalKeyAttrTypeBody "aoce Local Key")
- (defconstant $kDirUserRIDAttrTypeBody "aoce Dir User RID")
- (defconstant $kDirUserKeyAttrTypeBody "aoce Dir User Key")
- (defconstant $kDirNativeNameAttrTypeBody "aoce Dir Native Name")
- (defconstant $kCommentAttrTypeBody "aoce Comment")
- (defconstant $kRealNameAttrTypeBody "aoce Real Name")
- (defconstant $kPrivateDataAttrTypeBody "aoce Private Data")
- (defconstant $kDirTypeAttrTypeBody "aoce Directory Type")
- (defconstant $kDSAMFileAliasAttrTypeBody "aoce DSAM File Alias")
- (defconstant $kCanAddressToAttrTypeBody "aoce Can Address To")
- (defconstant $kDiscriminatorAttrTypeBody "aoce Discriminator")
- (defconstant $kAliasAttrTypeBody "aoce Alias")
- (defconstant $kParentMSAMAttrTypeBody "aoce Parent MSAM")
- (defconstant $kParentDSAMAttrTypeBody "aoce Parent DSAM")
- (defconstant $kSlotAttrTypeBody "aoce Slot")
- (defconstant $kAssoMailServiceAttrTypeBody "aoce Asso. Mail Service")
- (defconstant $kFakeAttrTypeBody "aoce Fake")
- (defconstant $kInheritSysAdminAttrTypeBody "aoce Inherit SysAdministrators")
- (defconstant $kPreferredPDAttrTypeBody "aoce Preferred PD")
- (defconstant $kLastLoginAttrTypeBody "aoce Last Login")
- (defconstant $kMailerAOMStateAttrTypeBody "aoce Mailer AOM State")
- (defconstant $kMailerSendOptionsAttrTypeBody "aoce Mailer Send Options")
- (defconstant $kJoinedAttrTypeBody "aoce Joined")
- (defconstant $kUnconfiguredAttrTypeBody "aoce Unconfigured")
- (defconstant $kVersionAttrTypeBody "aoce Version")
- (defconstant $kLocationNamesAttrTypeBody "aoce Location Names")
- (defconstant $kActiveAttrTypeBody "aoce Active")
- (defconstant $kDeleteRequestedAttrTypeBody "aoce Delete Requested")
- (defconstant $kGatewayTypeAttrTypeBody "aoce Gateway Type")
-
- ; Miscellaneous enums:
-
- (defconstant $kRString32Size 32); max size of the body field in RString32
- (defconstant $kRString64Size 64); max size of the body field in RString64
- (defconstant $kNetworkSpecMaxBytes 32); max size of the body field in NetworkSpec
- (defconstant $kPathNameMaxBytes 1024); max size of the data field in PackedPathName
- (defconstant $kDirectoryNameMaxBytes 32); max size of the body field in DirectoryName
- (defconstant $kAttributeTypeMaxBytes 32); max size of the body field in AttributeType
- (defconstant $kAttrValueMaxBytes 65536); max size of any attribute value
- (defconstant $kRStringMaxBytes 256); max size (bytes: in) of the body field of a recordName or recordType
- (defconstant $kRStringMaxChars 128); max size (chars: in) of the body field of a recordName or recordType
-
- (defconstant $kNULLDNodeNumber 0); Special value meaning none specified
- (defconstant $kRootDNodeNumber 2); DNodeNum corresponding to the root of the tree
-
- ;
- ; This enum is used to select the kind of RString in calls such as OCERelRString,
- ; OCEEqualRString, and OCEValidRString.
- ;
- ; eGenericSensitive and eGenericInsensitive are enumerators that can be used if you
- ; use RStrings for things other than what you see in this file. If you want them to
- ; be compared in a case- and diacritical-sensitive manner (c ≠ C ≠ ç), use
- ; eGenericSensitive. If you want them to be compared in a case- and diacritical-
- ; insensitive manner (c = C = ç), use eGenericInensitive.
- ; WARNING: do not use eGenericSensitive and eGenericInsensitive with directory
- ; names, entity names, pathname parts, entity types, network specs, or attribute
- ; types! Don't assume that you know how they should be compared!!!
- ;
-
- ; values of RStringKind
-
- (defconstant $kOCEDirName 0)
- (defconstant $kOCERecordOrDNodeName 1)
- (defconstant $kOCERecordType 2)
- (defconstant $kOCENetworkSpec 3)
- (defconstant $kOCEAttrType 4)
- (defconstant $kOCEGenericSensitive 5)
- (defconstant $kOCEGenericInsensitive 6)
-
- (def-mactype :RSTRINGKIND (find-mactype :SIGNED-INTEGER))
-
- ; Values for the signature field in Discriminator
-
- ; values of OCEDirectoryKind
-
- (defconstant $kDirAllKinds 0)
- (defconstant $kDirADAPKind :|adap|)
- (defconstant $kDirPersonalDirectoryKind :|pdir|)
- (defconstant $kDirDSAMKind :|dsam|)
-
- (def-mactype :OCEDIRECTORYKIND (find-mactype :SIGNED-LONG))
-
- ; Values returned by GetDSSpecInfo()
-
- (defconstant $kOCEInvalidDSSpec :|????|); could not be determined
- (defconstant $kOCEDirsRootDSSpec :|root|); root of all catalogs ("Catalogs" icon)
- (defconstant $kOCEDirectoryDSSpec :|dire|); catalog
- (defconstant $kOCEDNodeDSSpec :|dnod|); d-node
- (defconstant $kOCERecordDSSpec :|reco|); record
- (defconstant $kOCEentnDSSpec :|entn|); extensionType is 'entn'
- (defconstant $kOCENOTentnDSSpec :|not |); extensionType is not 'entn'
-
- ; Values for AttributeTag
- (defconstant $typeRString :|rstr|)
- (defconstant $typePackedDSSpec :|dspc|)
- (defconstant $typeBinary :|bnry|)
-
- ;
- ; Bit flag corresponding to the isCluster bit. Use it like this:
- ; if (foo & kCanContainRecordsBit)
- ; then this is a cluster!
- ; kForeignNode is used to indicate nodes in the name hierarchy that correspond to
- ; foreign directories (meaning ADAP sees no clusters or DNodes beneath it, but
- ; mail routers might be able to route to clusters beneath it.
- ;
-
- (defconstant $kCanContainRecordsBit 0)
- (defconstant $kForeignNodeBit 1)
-
- ; values of DirNodeKind
- (defconstant $kCanContainRecords #X1); 1<<kCanContainRecordsBit
- (defconstant $kForeignNode #X2) ; 1<<kForeignNodeBit
-
- (def-mactype :DIRNODEKIND (find-mactype :SIGNED-LONG))
-
- ; *** Toolbox Control ***
-
- ;
- ; We will have a version number and attributes for toolboxes off the aa5e trap
- ; and the S&F server trap.
- ;
- ; This includes the OCE toolbox and S&F Server. [Note: the S&F server will
- ; change to ONLY service ServerGateway calls —it will then be necessary to run
- ; it co–resident with an OCE toolbox].
- ;
- ; The high order word will represent the S&F Server version number. The low
- ; order word will represent the OCE toolbox version number. These will be zero
- ; until the component is up and running. It is not possible to know these
- ; a–priori. Note: there will not be a seperate version numbers for each component
- ; in the OCE toolbox or S&F server.
- ;
- ; The above is consistent with the standard System 7.0 usage of Gestalt.
- ;
- ; The oce tb attribute gestaltOCETBPresent implies the existence of OCE on a
- ; machine.
- ;
- ; The OCE TB attribute gestaltOCETBAvailable implies the availablity of OCE calls.
- ;
- ; The attribute gestaltOCESFServerAvailable implies the availablity of OCE calls
- ; available through the S&F server. This are essentially the server gateway calls.
- ;
- ; Any (future) remaining OCE attributes may not be established correctly until
- ; the attribute gestaltOCETBAvailable is set.
- ;
- ; The gestalt selectors and values are listed below:
- ;
-
- (defconstant $gestaltOCEToolboxVersion :|ocet|); OCE Toolbox version
- (defconstant $gestaltOCEToolboxAttr :|oceu|); OCE Toolbox attributes
-
- ; version includes:
- ; * dirtb
- ; * authtb
- ; * mailtb
- ; * ipmtb
- ; * personal directory
- ; * ADSPSecure
- ; * e.g. all interfaces dependent on the aa5e trap.
- ;
- (defconstant $gestaltOCETB #X100); OCE Toolbox version 1.0
- (defconstant $gestaltSFServer #X100); S&F Server version 1.0
- (defconstant $gestaltOCETBPresent #X1); OCE toolbox is present, not running
- (defconstant $gestaltOCETBAvailable #X2); OCE toolbox is running and available
- (defconstant $gestaltOCESFServerAvailable #X4); S&F Server is running and available
-
- ; Constants used for Transitions.
-
- (defconstant $ATTransIPMStart :|ipms|)
- (defconstant $ATTransIPMShutdown :|ipmd|)
- (defconstant $ATTransDirStart :|dirs|)
- (defconstant $ATTransDirShutdown :|dird|)
- (defconstant $ATTransAuthStart :|auts|)
- (defconstant $ATTransAuthShutdown :|autd|)
- (defconstant $ATTransSFStart :|s&fs|)
- (defconstant $ATTransSFShutdown :|s&fd|)
-
- ; Some definitions for time-related parameters:
-
- (def-mactype :UTCTIME (find-mactype :SIGNED-LONG)); Interpreted as UTC seconds since 1/1/1904
- (def-mactype :UTCOFFSET (find-mactype :SIGNED-LONG)); seconds EAST of Greenwich
-
- (def-mactype :CHARACTERSET (find-mactype :SIGNED-INTEGER)); This is the same as the ScriptManager script.
-
- ; *** RString ***
-
- ;
- ; struct RString is a maximum-sized structure. Allocate one of these and it will
- ; hold any valid RString.
- ;
-
- (defrecord RStringHeader
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
- )
-
- (defrecord RString
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 256)); place for characters { (:ARRAY :UNSIGNED-BYTE (- #$KRSTRINGMAXBYTES 1 -1)) }
- )
-
- ; struct ProtoRString is a minimum-sized structure. Use this for a variable-length
- ; RString.
-
- (defrecord ProtoRString ; proto-RString used for variable length rStrings
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- ; Followed by body
- )
-
- (def-mactype :RSTRINGPTR (find-mactype :POINTER))
- (def-mactype :RSTRINGHANDLE (find-mactype :HANDLE))
- (def-mactype :PROTORSTRINGPTR (find-mactype :POINTER))
-
- (defconstant $kMinPackedRStringLength (RECORD-LENGTH PROTORSTRING))
-
- (defrecord RString64
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 64)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KRSTRING64SIZE 1 -1)) }
- )
-
- (defrecord RString32
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 32)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KRSTRING32SIZE 1 -1)) }
- )
-
- (def-mactype :RSTRING32PTR (find-mactype :POINTER))
-
- ;
- ; Standard definitions for the entity type field and attribute type
- ; have been moved to the end of the file.
- ;
-
- ;
- ; Copies str1 to str2. str2Length is the size of str2, excluding header.
- ; A memFull error will be returned if that is not as large as str1->length.
- ;
-
-
- (deftrap _ocecopyrstring ((str1 (:pointer :rstring)) (str2 (:pointer :rstring)) (str2length :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 776 str1 str2 str2length))
-
- ; Make an RString from a C STRING. If the c STRING is bigger than rStrLength,
- ; only rStrLength bytes will be copied. (rStrLength does not include the header size)
-
-
- (deftrap _ocectorstring ((cstr :pointer) (charset :signed-integer) (rstr (:pointer :rstring)) (rstrlength :signed-integer))
- nil
- (:stack-trap #xAA5C :d0 825 cstr charset rstr rstrlength))
-
- ; Make an RString from a Pascal STRING. If the Pascal STRING is bigger than rStrLength,
- ; only rStrLength bytes will be copied. (rStrLength does not include the header size)
-
-
- (deftrap _oceptorstring ((pstr (:string 255)) (charset :signed-integer) (rstr (:pointer :rstring)) (rstrlength :signed-integer))
- nil
- (:stack-trap #xAA5C :d0 826 pstr charset rstr rstrlength))
-
- ; Make a Pascal STRING from an RString. It's up to you to check the CHAR set of
- ; the RString, or if the length of the RString is greater than 255 (the Pascal STRING's
- ; length will simply be the lower byte of the RString's length). The StringPtr that is
- ; returned will point directly into the RString (no memory will be allocated).
-
-
- (deftrap _ocertopstring ((rstr (:pointer :rstring)))
- (:stack (:pointer (:string 255)))
- (:stack-trap #xAA5C :d0 827 rstr))
-
- ; Check the relative equality of two RStrings. Determines if str1 is greater than,
- ; equal to, or less than str2. Result types for OCERelRString are defined in <OSUtils.h>
- ; (same as for RelString).
-
-
- (deftrap _ocerelrstring ((str1 :pointer) (str2 :pointer) (kind :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 813 str1 str2 kind))
-
- ; Check for equality of two RStrings. Returns true if equal.
-
-
- (deftrap _oceequalrstring ((str1 :pointer) (str2 :pointer) (kind :signed-integer))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 790 str1 str2 kind))
-
- ; Check the validity of an RString. Returns true if the RString is valid
-
-
- (deftrap _ocevalidrstring ((str :pointer) (kind :signed-integer))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 824 str kind))
-
- ; *** CreationID ***
-
- (defrecord CreationID
- (source :SIGNED-LONG) ; Fields definitions and usage are not defined
- (seq :SIGNED-LONG)
- )
-
- (%define-record :ATTRIBUTECREATIONID (find-record-descriptor :CREATIONID))
- (def-mactype :CREATIONIDPTR (find-mactype :POINTER))
-
- ; Returns a pointer to a null CreationID .
-
-
- (deftrap _ocenullcid nil
- (:stack (:pointer :creationid))
- (:stack-trap #xAA5C :d0 836))
-
- ; Returns a pointer to a special CreationID used within the PathFinder.
-
-
- (deftrap _ocepathfindercid nil
- (:stack (:pointer :creationid))
- (:stack-trap #xAA5C :d0 828))
-
- ; Sets the CreationID to a null value.
-
-
- (deftrap _ocesetcreationidtonull ((cid (:pointer :creationid)))
- nil
- (:stack-trap #xAA5C :d0 814 cid))
-
- ; Copies the value of cid1 to cid2.
-
-
- (deftrap _ocecopycreationid ((cid1 :creationid) (cid2 (:pointer :creationid)))
- nil
- (:stack-trap #xAA5C :d0 768 cid1 cid2))
-
- ; Check the equality of two CreationIDs.
-
-
- (deftrap _oceequalcreationid ((cid1 :creationid) (cid2 :creationid))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 780 cid1 cid2))
-
- ; *** NetworkSpec ***
-
- ;
- ; For the record, a NetworkSpec is an RString with a smaller maximum size.
- ; I don't justtypedef it to an RString, because I want the definition of the NetworkSpec
- ; struct to contain the max length. But it should be possible to typecast any
- ; NetworkSpec to an RString and use all the RString utilities on it.
- ;
-
- (defrecord NetworkSpec
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 32)); always fixed at the max size { (:ARRAY :UNSIGNED-BYTE (- #$KNETWORKSPECMAXBYTES 1 -1)) }
- )
-
- (def-mactype :NETWORKSPECPTR (find-mactype :POINTER))
-
- ; *** PackedPathName ***
-
- ;
- ; struct PackedPathName is a maximum-sized structure. Allocate one of
- ; these and it will hold any valid packed pathname.
- ;
-
- (defrecord PackedPathNameHeader
- (dataLength :SIGNED-INTEGER) ; length excludes the space for the length field
- )
-
- (defconstant $kPathNameMaxBytesMinusSizeofInteger 1022)
-
- (defrecord PackedPathName
- (dataLength :SIGNED-INTEGER)
-
- (data (:ARRAY :UNSIGNED-BYTE 1022)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KPATHNAMEMAXBYTESMINUSSIZEOFINTEGER 1 -1)) }
- )
-
- ;
- ; struct ProtoPackedPathName is a minimum-sized structure. Use this
- ; for a variable-length packed PathName.
- ;
-
- (defrecord ProtoPackedPathName
- (dataLength :SIGNED-INTEGER)
-
- ; Followed by data
- )
-
- (def-mactype :PACKEDPATHNAMEPTR (find-mactype :POINTER))
- (def-mactype :PROTOPACKEDPATHNAMEPTR (find-mactype :POINTER))
-
- ;
- ; Copy the contents of path1 to path2. path2Length is the size of path2, and must
- ; be large enough to hold a copy of path1. A memFull error will be returned if that
- ; is not the case.
- ;
-
-
- (deftrap _ocecopypackedpathname ((path1 (:pointer :packedpathname)) (path2 (:pointer :packedpathname)) (path2length :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 772 path1 path2 path2length))
-
- ;
- ; Returns true if packed path pointer is nil, or is of zero length, or is of
- ; length 2 and nParts of zero.
- ;
-
-
- (deftrap _oceisnullpackedpathname ((path (:pointer :packedpathname)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 797 path))
-
- ;
- ; OCEUnpackPathName breaks apart the path into its component RStrings, writing STRING
- ; pointers into the array 'parts', which the client asserts can hold as many as
- ; 'nParts' elements. The number of parts actually found is returned. STRINGs are
- ; placed in the array in order from lowest to highest. The first pathName element
- ; beneath the root appears last. NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO
- ; THE PACKED STRUCT - DON'T DELETE OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED
- ; WITH THE UNPACKED STRUCT AS WELL
- ;
-
-
- (deftrap _oceunpackpathname ((path (:pointer :packedpathname)) (parts (:pointer (:pointer :rstring))) (nparts :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 816 path parts nparts))
-
- ;
- ; OCEPackedPathNameSize computes the number of bytes of memory needed to hold a
- ; PackedPathName manufactured from the array of parts. This length
- ; includes the length of the length field of PackedPathName, so it
- ; is safe to do a NewPtr (OCEPackedPathNameSize(...)).
- ;
-
-
- (deftrap _ocepackedpathnamesize ((parts (:pointer (:pointer :rstring))) (nparts :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 808 parts nparts))
-
- ; OCEDNodeNameCount returns the number of RStrings contained within the path.
-
-
- (deftrap _ocednodenamecount ((path (:pointer :packedpathname)))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 812 path))
-
- ;
- ; OCEPackPathName packs the parts into the storage provided as 'path'. path must be
- ; large enough to hold the packed pathname. A memFull error will be returned if
- ; pathLength is too small. parts[0] should contain the deepest pathName element,
- ; and parts[nParts - 1] should contain the name of the first pathName element beneath
- ; the root.
- ;
-
-
- (deftrap _ocepackpathname ((parts (:pointer (:pointer :rstring))) (nparts :signed-integer) (path (:pointer :packedpathname)) (pathlength :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 803 parts nparts path pathlength))
-
- ;
- ; Check the equality of two packed paths.
- ;
-
-
- (deftrap _oceequalpackedpathname ((path1 (:pointer :packedpathname)) (path2 (:pointer :packedpathname)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 785 path1 path2))
-
- ;
- ; OCEValidPackedPathName checks that the packed PathName is internally consistent.
- ; Returns true if it's ok.
- ;
-
-
- (deftrap _ocevalidpackedpathname ((path (:pointer :packedpathname)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 820 path))
-
- ; *** DirDiscriminator ***
-
- (defrecord DirDiscriminator
- (signature :SIGNED-LONG)
- (misc :SIGNED-LONG)
- )
-
- ; Copies the value of disc1 to disc2.
-
-
- (deftrap _ocecopydirdiscriminator ((disc1 :dirdiscriminator) (disc2 (:pointer :dirdiscriminator)))
- nil
- (:stack-trap #xAA5C :d0 769 disc1 disc2))
-
- ; Check the equality of two DirDiscriminators.
-
-
- (deftrap _oceequaldirdiscriminator ((disc1 :dirdiscriminator) (disc2 :dirdiscriminator))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 781 disc1 disc2))
-
- ; ********************************************************************************
- ;
- ; This structure is called RLI because it really contains all the info you
- ; need to locate a record within the entire name space. It contains four fields.
- ; The first two are the name of the directory and a directory discriminator. These
- ; two fields are used to indicate to which directory a given record belongs. The
- ; discriminator is used to distinguish between two different directories that have
- ; the same name.
- ;
- ; The other two fields in the RLI structure are used to indicate a particular
- ; directory node within the directory specified by the directoryName and
- ; discriminator fields. These fields are exactly analagous to the dirID and
- ; pathname used in HFS. It is possible to specify a dNode just by dNodeNumber
- ; (pathname is nil), or just by pathname (dNodeNumber is set to kNULLDNodeNumber),
- ; or by a combination of the two. The latter is called a 'partial pathname', and
- ; while it is valid in the Directory Manager API, it is not supported by ADAP
- ; directories in Release 1.
- ;
- ; Note that the path parameter does not include the directory name, but holds
- ; the names of all the nodes on the path to the desired directory node, starting
- ; with the directory node and working its way up the tree.
- ;
- ; ********************************************************************************
-
- ; *** RLI ***
-
- (defrecord DirectoryName
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 32)); space for directory name { (:ARRAY :UNSIGNED-BYTE (- #$KDIRECTORYNAMEMAXBYTES 1 -1)) }
- )
-
- (def-mactype :DIRECTORYNAMEPTR (find-mactype :POINTER))
-
- (def-mactype :DNODENUM (find-mactype :SIGNED-LONG)); Directory node number
-
- (defrecord RLI ; Record Location Info structure:
- (directoryName (:POINTER :DIRECTORYNAME)); pointer to the name of the directory root
- (discriminator :DIRDISCRIMINATOR); used to discriminate between dup dir names
- (dNodeNumber :SIGNED-LONG) ; number of the node
- (path (:POINTER :PACKEDPATHNAME)); old-style RLI
- )
-
- (def-mactype :RLIPTR (find-mactype :POINTER))
-
- ;
- ; Create a new RLI from the directory name, discriminator, DNode number, and
- ; PackedPathName. You must allocate the storage for the RLI and pass in a pointer
- ; to it.
- ;
-
-
- (deftrap _ocenewrli ((newrli (:pointer :rli)) (dirname (:pointer :directoryname)) (discriminator (:pointer :dirdiscriminator)) (dnodenumber :signed-long) (path (:pointer :packedpathname)))
- nil
- (:stack-trap #xAA5C :d0 799 newrli dirname discriminator dnodenumber path))
-
- ;
- ; Duplicate the contents of rli1 to rli2. No errors are returned. This
- ; simply copies the pointers to the directory name and path, wiping out any pointer
- ; that you might have had in there.
- ;
-
-
- (deftrap _oceduplicaterli ((rli1 :rli) (rli2 (:pointer :rli)))
- nil
- (:stack-trap #xAA5C :d0 779 rli1 rli2))
-
- ;
- ; Copy the contents of rli1 to rli2. rli2 must already contain
- ; pointers to structures large enough to hold copies of the corresponding
- ; fields from rli1. A memFull error will be returned if that is not the case.
- ; So if you allocate a brand new empty destination, you must at least set up
- ; its length fields.
- ;
-
-
- (deftrap _ocecopyrli ((rli1 :rli) (rli2 (:pointer :rli)))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 775 rli1 rli2))
-
- ;
- ; Check the equality of two RLIs. This will take into account differences
- ; in the case and diacriticals of the directoryName and the PathName.
- ; NOTE THAT THIS WILL FAIL IF rli1 CONTAINS A DNODENUMBER AND A NIL PATHNAME,
- ; AND rli2 CONTAINS kNULLDNodeNumber AND A NON-NIL PATHNAME. IN OTHER WORDS,
- ; THE TWO rlis MUST BE OF THE SAME FORM TO CHECK FOR EQUALITY.
- ; The one exception is that if the pathname is nil, a dNodeNumber of zero and
- ; kRootDNodeNumber will be treated as equal.
- ;
-
-
- (deftrap _oceequalrli ((rli1 :rli) (rli2 :rli))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 789 rli1 rli2))
-
- ;
- ; Check the validity of an RLI. This checks that the directory name length
- ; is within bounds, and the packed pathname (specified: if) is valid.
- ;
-
-
- (deftrap _ocevalidrli ((therli :rli))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 823 therli))
-
- ; *** PackedRLI ***
-
- ;
- ; struct PackedRLI is a maximum-sized structure. Allocate one of
- ; these and it will hold any valid packed pathname.
- ;
-
- (defconstant $kRLIMaxBytes 1296)
-
- (defrecord PackedRLIHeader
- (dataLength :SIGNED-INTEGER) ; length excludes the space for the length field
- )
-
- (defrecord PackedRLI
- (dataLength :SIGNED-INTEGER)
-
- (data (:ARRAY :UNSIGNED-BYTE 1296)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KRLIMAXBYTES 1 -1)) }
- )
-
- ;
- ; struct ProtoPackedRLI is a minimum-sized structure. Use this
- ; for a variable-length packed RLI.
- ;
-
- (defrecord ProtoPackedRLI
- (dataLength :SIGNED-INTEGER)
-
- ; Followed by data
- )
-
- (def-mactype :PACKEDRLIPTR (find-mactype :POINTER))
- (def-mactype :PROTOPACKEDRLIPTR (find-mactype :POINTER))
-
- (defconstant $kMinPackedRLISize (+ (RECORD-LENGTH PROTOPACKEDRLI) (+ (RECORD-LENGTH DIRDISCRIMINATOR) (+ (RECORD-LENGTH DNODENUM) (+ #$KMINPACKEDRSTRINGLENGTH (RECORD-LENGTH PROTOPACKEDPATHNAME))))))
-
- ;
- ; Copy the contents of prli1 to prli2. prli2Length is the size of prli2, and must
- ; be large enough to hold a copy of prli1. A memFull error will be returned if that
- ; is not the case.
- ;
-
-
- (deftrap _ocecopypackedrli ((prli1 (:pointer :packedrli)) (prli2 (:pointer :packedrli)) (prli2length :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 773 prli1 prli2 prli2length))
-
- ;
- ; OCEUnpackRLI breaks apart the prli into its components, writing pointers into
- ; the rli structure. NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE
- ; PACKED STRUCT - DON'T DELETE OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED
- ; WITH THE UNPACKED STRUCT AS WELL
- ;
-
-
- (deftrap _oceunpackrli ((prli (:pointer :packedrli)) (therli (:pointer :rli)))
- nil
- (:stack-trap #xAA5C :d0 817 prli therli))
-
- ;
- ; OCEPackedRLISize computes the number of bytes of memory needed to hold a
- ; PackedRLI manufactured from an RLI. This length
- ; includes the length of the length field of PackedRLI, so it
- ; is safe to do a NewPtr (OCEPackedRLISize(...)).
- ;
-
-
- (deftrap _ocepackedrlisize ((therli :rli))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 810 therli))
-
- ;
- ; OCEPackRLI packs the RLI into the storage provided as 'prli'. prli must be
- ; large enough to hold the packed RLI. A memFull error will be returned if
- ; prliLength is too small.
- ;
-
-
- (deftrap _ocepackrli ((therli :rli) (prli (:pointer :packedrli)) (prlilength :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 804 therli prli prlilength))
-
- ;
- ; OCEPackedRLIPartsSize computes the number of bytes of memory needed to hold a
- ; PackedRLI manufactured from the parts of an RLI. This length
- ; includes the length of the length field of PackedRLI, so it
- ; is safe to do a NewPtr (OCEPackedRLIPartsSize(...)).
- ;
-
-
- (deftrap _ocepackedrlipartssize ((dirname (:pointer :directoryname)) (parts (:pointer (:pointer :rstring))) (nparts :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 809 dirname parts nparts))
-
- ;
- ; OCEPackRLIParts packs the parts of an RLI into the storage provided as 'prli'.
- ; prli must be large enough to hold the packed RLI. A memFull error will be returned
- ; if prliLength is too small.
- ;
-
-
- (deftrap _ocepackrliparts ((dirname (:pointer :directoryname)) (discriminator :dirdiscriminator) (dnodenumber :signed-long) (parts (:pointer (:pointer :rstring))) (nparts :signed-integer) (prli (:pointer :packedrli)) (prlilength :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 805 dirname discriminator dnodenumber parts nparts prli prlilength))
-
- ;
- ; Check the equality of two packed prlis.
- ;
-
-
- (deftrap _oceequalpackedrli ((prli1 (:pointer :packedrli)) (prli2 (:pointer :packedrli)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 787 prli1 prli2))
-
- ;
- ; Check the validity of a packed RLI. This checks that the directory name length
- ; is within bounds, and the packed pathname (specified: if) is valid.
- ;
-
-
- (deftrap _ocevalidpackedrli ((prli (:pointer :packedrli)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 822 prli))
-
- ;
- ; If this packed RLI describes a Personal Directory, this call will return a pointer
- ; to an alias record that can be used to find the actual file. Otherwise, it returns nil.
- ;
-
-
- (deftrap _oceextractalias ((prli (:pointer :packedrli)))
- (:stack :aliasptr)
- (:stack-trap #xAA5C :d0 792 prli))
-
- ;
- ; This call returns a pointer to a packed RLI that represents the "Catalogs" icon, or
- ; the root of all directories. It is used in the CollabPack.
- ;
-
-
- (deftrap _ocegetdirectoryrootpackedrli nil
- (:stack (:pointer :packedrli))
- (:stack-trap #xAA5C :d0 838))
-
- ; *** LocalRecordID ***
-
- (defrecord LocalRecordID
- (cid :CREATIONID)
- (recordName (:POINTER :RSTRING))
- (recordType (:POINTER :RSTRING))
- )
-
- (def-mactype :LOCALRECORDIDPTR (find-mactype :POINTER))
-
- ; Create a LocalRecordID from a name, type, and CreationID
-
-
- (deftrap _ocenewlocalrecordid ((recordname (:pointer :rstring)) (recordtype (:pointer :rstring)) (cid :creationid) (lrid (:pointer :localrecordid)))
- nil
- (:stack-trap #xAA5C :d0 798 recordname recordtype cid lrid))
-
- ;
- ; Copy LocalRecordID lRID1 to LocalRecordID lRID2. lRID2 must already contain
- ; pointers to RString structures large enough to hold copies of the corresponding
- ; fields from lRID1. A memFull error will be returned if that is not the case.
- ; So if you allocate a brand new empty destination, you must at least set up
- ; its length field.
- ;
-
-
- (deftrap _ocecopylocalrecordid ((lrid1 :localrecordid) (lrid2 (:pointer :localrecordid)))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 770 lrid1 lrid2))
-
- ;
- ; Check the equality of two local RIDs.
- ;
-
-
- (deftrap _oceequallocalrecordid ((lrid1 :localrecordid) (lrid2 :localrecordid))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 783 lrid1 lrid2))
-
- ; *** ShortRecordID ***
-
- (defrecord ShortRecordID
- (rli (:POINTER :PACKEDRLI))
- (cid :CREATIONID)
- )
-
- (def-mactype :SHORTRECORDIDPTR (find-mactype :POINTER))
-
- ; Create a ShortRecordID from an RLI struct and a CreationID
-
-
- (deftrap _ocenewshortrecordid ((therli (:pointer :packedrli)) (cid :creationid) (srid (:pointer :shortrecordid)))
- nil
- (:stack-trap #xAA5C :d0 801 therli cid srid))
-
- ;
- ; Copy ShortRecordID sRID1 to ShortRecordID sRID2. sRID2 must already contain
- ; pointers to structures large enough to hold copies of the corresponding
- ; fields from sRID1. A memFull error will be returned if that is not the case.
- ; So if you allocate a brand new empty destination, you must at least set up
- ; its length fields.
- ;
-
-
- (deftrap _ocecopyshortrecordid ((srid1 :shortrecordid) (srid2 (:pointer :shortrecordid)))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 778 srid1 srid2))
-
- ;
- ; Check the equality of two INTEGER RIDs.
- ;
-
-
- (deftrap _oceequalshortrecordid ((srid1 :shortrecordid) (srid2 :shortrecordid))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 791 srid1 srid2))
-
- ; *** RecordID ***
-
- (defrecord RecordID
- (rli (:POINTER :PACKEDRLI)) ; pointer to a packed rli structure
- (local :LOCALRECORDID)
- )
-
- (def-mactype :RECORDIDPTR (find-mactype :POINTER))
-
- ; Create a RecordID from a packed RLI struct and a LocalRecordID.
- ; This doesn't allocate any new space; the RecordID points to the same
- ; packed RLI struct and the same name and type RStrings.
-
-
- (deftrap _ocenewrecordid ((therli (:pointer :packedrli)) (lrid :localrecordid) (rid (:pointer :recordid)))
- nil
- (:stack-trap #xAA5C :d0 800 therli lrid rid))
-
- ;
- ; Copy RecordID RID1 to RecordID RID2. RID2 must already contain
- ; pointers to structures large enough to hold copies of the corresponding
- ; fields from lRID1. A memFull error will be returned if that is not the case.
- ; So if you allocate a brand new empty destination, you must at least set up
- ; its length fields.
- ;
-
-
- (deftrap _ocecopyrecordid ((rid1 :recordid) (rid2 :recordid))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 777 rid1 rid2))
-
- ; Check the equality of two RIDs.
-
-
- (deftrap _oceequalrecordid ((rid1 :recordid) (rid2 :recordid))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 788 rid1 rid2))
-
- ; *** PackedRecordID ***
-
- ;
- ; struct PackedRecordID is a maximum-sized structure. Allocate one of
- ; these and it will hold any valid packed RecordID.
- ;
-
- (defconstant $kPackedRecordIDMaxBytes 1824)
-
- (defrecord PackedRecordIDHeader
- (dataLength :SIGNED-INTEGER) ; length excludes the space for the length field
- )
-
- (defrecord PackedRecordID
- (dataLength :SIGNED-INTEGER)
-
- (data (:ARRAY :UNSIGNED-BYTE 1824)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KPACKEDRECORDIDMAXBYTES 1 -1)) }
- )
-
- ;
- ; struct ProtoPackedRecordID is a minimum-sized structure. Use this
- ; for a variable-length packed RecordID.
- ;
-
- (defrecord ProtoPackedRecordID
- (dataLength :SIGNED-INTEGER)
-
- ; Followed by data
- )
-
- (def-mactype :PACKEDRECORDIDPTR (find-mactype :POINTER))
- (def-mactype :PROTOPACKEDRECORDIDPTR (find-mactype :POINTER))
-
- ;
- ; Copy PackedRecordID pRID1 to PackedRecordID pRID2. pRID2 must already contain
- ; pointers to structures large enough to hold copies of the corresponding
- ; fields from pRID1. A memFull error will be returned if that is not the case.
- ; pRID2Length is the number of bytes that can be put into pRID2, not counting the
- ; packed RecordID header.
- ;
-
-
- (deftrap _ocecopypackedrecordid ((prid1 (:pointer :packedrecordid)) (prid2 (:pointer :packedrecordid)) (prid2length :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 774 prid1 prid2 prid2length))
-
- ;
- ; Create a RecordID from a PackedRecordID.
- ; NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE PACKED STRUCT - DON'T DELETE
- ; OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED WITH THE UNPACKED STRUCT AS WELL
- ;
-
-
- (deftrap _oceunpackrecordid ((prid (:pointer :packedrecordid)) (rid (:pointer :recordid)))
- nil
- (:stack-trap #xAA5C :d0 818 prid rid))
-
- ;
- ; Create a PackedRecordID from a RecordID. pRID must be large enough to contain
- ; the packed RecordID. A memFull error will be returned if that is not the case.
- ; packedRecordIDLength is the number of bytes that can be put into pRID, not
- ; counting the header.
- ;
-
-
- (deftrap _ocepackrecordid ((rid :recordid) (prid (:pointer :packedrecordid)) (packedrecordidlength :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 806 rid prid packedrecordidlength))
-
- ;
- ; Compute the number of bytes of memory needed to hold a RecordID when packed. This
- ; length includes the length of the length field of PackedRecordID, so it
- ; is safe to do a NewPtr (OCEPackedRecordIDSize(...)).
- ;
-
-
- (deftrap _ocepackedrecordidsize ((rid :recordid))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 811 rid))
-
- ;
- ; Check the equality of two packed RIDs.
- ;
-
-
- (deftrap _oceequalpackedrecordid ((prid1 (:pointer :packedrecordid)) (prid2 (:pointer :packedrecordid)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 786 prid1 prid2))
-
- ; OCEValidPackedRecordID checks the validity of a packed record ID.
-
-
- (deftrap _ocevalidpackedrecordid ((prid (:pointer :packedrecordid)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 821 prid))
-
- ; *** DSSpec ***
-
- (defrecord DSSpec
- (entitySpecifier (:POINTER :RECORDID))
- (extensionType :OSTYPE)
- (extensionSize :SIGNED-INTEGER)
- (extensionValue :POINTER)
- )
-
- (def-mactype :DSSPECPTR (find-mactype :POINTER))
-
- ;
- ; struct PackedDSSpec is NOT a maximum-sized structure. Allocate one of
- ; these and it will hold any valid packed RecordID, but not necessarily any additional
- ; data.
- ;
-
- (defconstant $kPackedDSSpecMaxBytes 1832)
-
- (defrecord PackedDSSpecHeader
- (dataLength :SIGNED-INTEGER) ; length excludes the space for the length field
- )
-
- (defrecord PackedDSSpec
- (dataLength :SIGNED-INTEGER)
-
- (data (:ARRAY :UNSIGNED-BYTE 1832)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KPACKEDDSSPECMAXBYTES 1 -1)) }
- )
-
- ;
- ; struct ProtoPackedDSSpec is a minimum-sized structure. Use this
- ; for a variable-length packed DSSpec.
- ;
-
- (defrecord ProtoPackedDSSpec
- (dataLength :SIGNED-INTEGER)
-
- ; Followed by data
- )
-
- (def-mactype :PACKEDDSSPECPTR (find-mactype :POINTER))
- (def-mactype :PROTOPACKEDDSSPECPTR (find-mactype :POINTER))
-
- ;
- ; Copy PackedDSSpec pdss1 to PackedDSSpec pdss2. pdss2 must already contain
- ; pointers to structures large enough to hold copies of the corresponding
- ; fields from pdss1. A memFull error will be returned if that is not the case.
- ; pdss2Length is the number of bytes that can be put into pdss2, not counting the
- ; packed DSSpec header.
- ;
-
-
- (deftrap _ocecopypackeddsspec ((pdss1 (:pointer :packeddsspec)) (pdss2 (:pointer :packeddsspec)) (pdss2length :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 771 pdss1 pdss2 pdss2length))
-
- ;
- ; Create a DSSpec from a PackedDSSpec.
- ; NOTE THAT THE UNPACKED STRUCT CONTAINS POINTERS INTO THE PACKED STRUCT - DON'T DELETE
- ; OR REUSE THE PACKED STRUCT UNTIL YOU ARE FINISHED WITH THE UNPACKED STRUCT AS WELL.
- ; A pointer to the extension is returned in dss->extensionValue, and the length of that
- ; extension is returned in dss->extensionSize. If there is no extension, dss->extensionValue will
- ; be set to nil. This routine will unpack the RecordID (any: if) into rid, unpack the rest
- ; into dss, and set dss->entitySpecifier to rid.
- ;
-
-
- (deftrap _oceunpackdsspec ((pdss (:pointer :packeddsspec)) (dss (:pointer :dsspec)) (rid (:pointer :recordid)))
- nil
- (:stack-trap #xAA5C :d0 815 pdss dss rid))
-
- ;
- ; Create a PackedDSSpec from a DSSpec. pdss must be large enough to
- ; contain the packed RecordID and any extension. A memFull error will be returned if that
- ; is not the case. pdssLength is the number of bytes that can be put into pdss,
- ; not counting the header.
- ;
-
-
- (deftrap _ocepackdsspec ((dss :dsspec) (pdss (:pointer :packeddsspec)) (pdsslength :signed-integer))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 802 dss pdss pdsslength))
-
- ;
- ; Compute the number of bytes of memory needed to hold a DSSpec when packed. This
- ; length includes the length of the length field of PackedDSSpec, so it
- ; is safe to do a NewPtr (OCEPackedDSSpecSize(...)).
- ;
-
-
- (deftrap _ocepackeddsspecsize ((dss :dsspec))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 807 dss))
-
- ; Check the equality of two DSSpecs. This compares all fields, even the
- ; extension (unless extensionSize == 0). The extensions are compared in a case-insensitive and
- ; diacrit-insensitive manner.
-
-
- (deftrap _oceequaldsspec ((pdss1 :dsspec) (pdss2 :dsspec))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 782 pdss1 pdss2))
-
- ; Check the equality of two PackedDSSpecs. This compares all fields, even the
- ; extension (unless extensionSize == 0). The extensions are compared in a case-insensitive and
- ; diacrit-insensitive manner.
-
-
- (deftrap _oceequalpackeddsspec ((pdss1 (:pointer :packeddsspec)) (pdss2 (:pointer :packeddsspec)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 784 pdss1 pdss2))
-
- ;
- ; Check the validity of a PackedDSSpec. If extensionType is
- ; 'entn', pdss must contain a valid entitySpecifier. For all other extensionTypes, a nil
- ; entitySpecifier is valid, but if non-nil, it will be checked for validity. No check
- ; is made on the extension.
- ;
-
-
- (deftrap _ocevalidpackeddsspec ((pdss (:pointer :packeddsspec)))
- (:stack :boolean)
- (:stack-trap #xAA5C :d0 819 pdss))
-
- ;
- ; Return info about a DSSpec. This routine does not check validity. If the
- ; DSSpec has no extension, we determine whether it represents the root of all
- ; directories, a single directory, a DNode, or a Record. Else it is invalid.
- ; If the DSSpec has an extension, we simply return the extension type.
- ;
-
-
- (deftrap _ocegetdsspecinfo ((spec :dsspec))
- (:stack :ostype)
- (:stack-trap #xAA5C :d0 793 spec))
-
- ; OCEGetExtensionType returns the extensionType imbedded in the PackedDSSpec.
-
-
- (deftrap _ocegetextensiontype ((pdss (:pointer :packeddsspec)))
- (:stack :ostype)
- (:stack-trap #xAA5C :d0 796 pdss))
-
- ;
- ; OCEStreamPackedDSSpec streams (flattens) a directory object a little at a time by
- ; calling the DSSpecStreamer routine that you provide.
- ;
-
- (def-mactype :DSSPECSTREAMER (find-mactype :POINTER))
- ; FUNCTION DSSpecStreamer(VAR buffer: void; count: LONGINT; eof: BOOLEAN;
- ; userData: LONGINT): OSErr;
-
-
- (deftrap _ocestreampackeddsspec ((dss :dsspec) (stream :pointer) (userdata :signed-long) (actualcount (:pointer :signed-long)))
- (:stack :signed-integer)
- (:stack-trap #xAA5C :d0 829 dss stream userdata actualcount))
-
- ; *** AttributeType ***
-
- ;
- ; For the record, an AttributeType is an RString with a smaller maximum size.
- ; I don't justtypedef it to an RString, because I want the definition of the AttributeType
- ; struct to contain the max length, because I need to include it in the Attribute struct
- ; below. But it should be possible to typecast any AttributeType to an RString and use
- ; all the RString utilities on it.
- ;
-
- (defrecord AttributeType
- (charSet :SIGNED-INTEGER)
- (dataLength :SIGNED-INTEGER)
-
- (body (:ARRAY :UNSIGNED-BYTE 32)) ; { (:ARRAY :UNSIGNED-BYTE (- #$KATTRIBUTETYPEMAXBYTES 1 -1)) }
- ; always fixed at the max size
- )
-
- (def-mactype :ATTRIBUTETYPEPTR (find-mactype :POINTER))
-
- ; *** AttributeValue ***
-
- (def-mactype :ATTRIBUTETAG (find-mactype :DESCTYPE)); same class as is used in AppleEvents
-
- (defrecord AttributeValue
- (tag :DESCTYPE)
- (dataLength :SIGNED-LONG)
- (bytes :POINTER)
- )
-
- (def-mactype :ATTRIBUTEVALUEPTR (find-mactype :POINTER))
-
- ; *** Attribute ***
-
- (defrecord Attribute
- (AttributeType :ATTRIBUTETYPE)
- (cid :CREATIONID)
- (value :ATTRIBUTEVALUE)
- )
-
- (def-mactype :ATTRIBUTEPTR (find-mactype :POINTER))
-
-
- (deftrap _ocegetindrecordtype ((stringindex :signed-integer))
- (:stack (:pointer :rstring))
- (:stack-trap #xAA5C :d0 795 stringindex))
-
-
- (deftrap _ocegetindattributetype ((stringindex :signed-integer))
- (:stack (:pointer :attributetype))
- (:stack-trap #xAA5C :d0 794 stringindex))
-
- (defconstant _oceTBDispatch #XAA5E)
-
- ; $ENDC ; UsingOCE
-
- ; $IFC NOT UsingIncludes
-
- ; $ENDC
-
- (export '(_OCETBDISPATCH $KPACKEDDSSPECMAXBYTES $KPACKEDRECORDIDMAXBYTES
- $KMINPACKEDRLISIZE $KRLIMAXBYTES $KPATHNAMEMAXBYTESMINUSSIZEOFINTEGER
- $KMINPACKEDRSTRINGLENGTH $ATTRANSSFSHUTDOWN $ATTRANSSFSTART
- $ATTRANSAUTHSHUTDOWN $ATTRANSAUTHSTART $ATTRANSDIRSHUTDOWN
- $ATTRANSDIRSTART $ATTRANSIPMSHUTDOWN $ATTRANSIPMSTART
- $GESTALTOCESFSERVERAVAILABLE $GESTALTOCETBAVAILABLE
- $GESTALTOCETBPRESENT $GESTALTSFSERVER $GESTALTOCETB
- $GESTALTOCETOOLBOXATTR $GESTALTOCETOOLBOXVERSION $KFOREIGNNODE
- $KCANCONTAINRECORDS $KFOREIGNNODEBIT $KCANCONTAINRECORDSBIT
- $TYPEBINARY $TYPEPACKEDDSSPEC $TYPERSTRING $KOCENOTENTNDSSPEC
- $KOCEENTNDSSPEC $KOCERECORDDSSPEC $KOCEDNODEDSSPEC
- $KOCEDIRECTORYDSSPEC $KOCEDIRSROOTDSSPEC $KOCEINVALIDDSSPEC
- $KDIRDSAMKIND $KDIRPERSONALDIRECTORYKIND $KDIRADAPKIND $KDIRALLKINDS
- $KOCEGENERICINSENSITIVE $KOCEGENERICSENSITIVE $KOCEATTRTYPE
- $KOCENETWORKSPEC $KOCERECORDTYPE $KOCERECORDORDNODENAME $KOCEDIRNAME
- $KROOTDNODENUMBER $KNULLDNODENUMBER $KRSTRINGMAXCHARS
- $KRSTRINGMAXBYTES $KATTRVALUEMAXBYTES $KATTRIBUTETYPEMAXBYTES
- $KDIRECTORYNAMEMAXBYTES $KPATHNAMEMAXBYTES $KNETWORKSPECMAXBYTES
- $KRSTRING64SIZE $KRSTRING32SIZE $KGATEWAYTYPEATTRTYPEBODY
- $KDELETEREQUESTEDATTRTYPEBODY $KACTIVEATTRTYPEBODY
- $KLOCATIONNAMESATTRTYPEBODY $KVERSIONATTRTYPEBODY
- $KUNCONFIGUREDATTRTYPEBODY $KJOINEDATTRTYPEBODY
- $KMAILERSENDOPTIONSATTRTYPEBODY $KMAILERAOMSTATEATTRTYPEBODY
- $KLASTLOGINATTRTYPEBODY $KPREFERREDPDATTRTYPEBODY
- $KINHERITSYSADMINATTRTYPEBODY $KFAKEATTRTYPEBODY
- $KASSOMAILSERVICEATTRTYPEBODY $KSLOTATTRTYPEBODY
- $KPARENTDSAMATTRTYPEBODY $KPARENTMSAMATTRTYPEBODY $KALIASATTRTYPEBODY
- $KDISCRIMINATORATTRTYPEBODY $KCANADDRESSTOATTRTYPEBODY
- $KDSAMFILEALIASATTRTYPEBODY $KDIRTYPEATTRTYPEBODY
- $KPRIVATEDATAATTRTYPEBODY $KREALNAMEATTRTYPEBODY
- $KCOMMENTATTRTYPEBODY $KDIRNATIVENAMEATTRTYPEBODY
- $KDIRUSERKEYATTRTYPEBODY $KDIRUSERRIDATTRTYPEBODY
- $KLOCALKEYATTRTYPEBODY $KLOCALNAMEATTRTYPEBODY $KSFLAGSATTRTYPEBODY
- $KDIRECTORIESATTRTYPEBODY $KDIRECTORYATTRTYPEBODY
- $KASSODIRECTORYATTRTYPEBODY $KSTDSLOTINFOATTRTYPEBODY
- $KMAILSERVICEATTRTYPEBODY $KGATEWAYFILEIDATTRTYPEBODY
- $KSLOTIDATTRTYPEBODY $KMAILSETUPATTRTYPEBODY $KTBSETUPATTRTYPEBODY
- $KSHADOWSERVERATTRTYPEBODY $KSHADOWSOFATTRTYPEBODY
- $KUPDATETIMERATTRTYPEBODY $KTIMESVRTYPEATTRTYPEBODY
- $KLOCATIONATTRTYPEBODY $KNETWORKSPECATTRTYPEBODY
- $KPARENTCIDATTRTYPEBODY $KSERVERSOFATTRTYPEBODY
- $KMASTERNETSPECATTRTYPEBODY $KMASTERPFATTRTYPEBODY
- $KPREFMSGQATTRTYPEBODY $KMSGQSATTRTYPEBODY $KCERTIFICATEATTRTYPEBODY
- $KDESCRIPTORATTRTYPEBODY $KWRITELISTATTRTYPEBODY
- $KREADLISTATTRTYPEBODY $KOWNERSATTRTYPEBODY $KFOREIGNATTRTYPEBODY
- $KCONNECTATTRTYPEBODY $KFWDRLOCALATTRTYPEBODY $KCORESATTRTYPEBODY
- $KHOMENETATTRTYPEBODY $KDIALUPSLOTATTRTYPEBODY $KQMAPPINGATTRTYPEBODY
- $KNBPNAMEATTRTYPEBODY $KTELEPHONEATTRTYPEBODY $KAUTHKEYATTRTYPEBODY
- $KPICTUREATTRTYPEBODY $KADDRESSATTRTYPEBODY $KPREFMAILATTRTYPEBODY
- $KMAILSLOTSATTRTYPEBODY $KADMINSATTRTYPEBODY $KMEMBERATTRTYPEBODY
- $KAFPSERVICERECTYPEBODY $KOTHERSERVICERECTYPEBODY
- $KCOMBINEDRECTYPEBODY $KMAILSERVICERECTYPEBODY
- $KBUSINESSCARDRECTYPEBODY $KATTRIBUTEVALUERECTYPEBODY
- $KDSAMRECTYPEBODY $KMSAMRECTYPEBODY $KSETUPRECTYPEBODY
- $KDNODERECTYPEBODY $KDIRECTORYRECTYPEBODY $KSERVERSETUPRECTYPEBODY
- $KADAPDNODEREPRECTYPEBODY $KADAPDNODERECTYPEBODY
- $KADAPSERVERRECTYPEBODY $KNETWORKSPECRECTYPEBODY
- $KMNMFORWARDERRECTYPEBODY $KMNMRECTYPEBODY $KGROUPRECTYPEBODY
- $KUSERRECTYPEBODY $KNUMOCEATTRTYPES $KLASTOCEATTRTYPENUM
- $KFIRSTOCEATTRTYPENUM $KGATEWAYTYPEATTRTYPENUM
- $KDELETEREQUESTEDATTRTYPENUM $KACTIVEATTRTYPENUM
- $KLOCATIONNAMESATTRTYPENUM $KVERSIONATTRTYPENUM
- $KUNCONFIGUREDATTRTYPENUM $KJOINEDATTRTYPENUM
- $KMAILERSENDOPTIONSATTRTYPENUM $KMAILERAOMSTATEATTRTYPENUM
- $KLASTLOGINATTRTYPENUM $KPREFERREDPDATTRTYPENUM
- $KINHERITSYSADMINATTRTYPENUM $KFAKEATTRTYPENUM
- $KASSOMAILSERVICEATTRTYPENUM $KSLOTATTRTYPENUM
- $KPARENTDSAMATTRTYPENUM $KPARENTMSAMATTRTYPENUM $KALIASATTRTYPENUM
- $KDISCRIMINATORATTRTYPENUM $KCANADDRESSTOATTRTYPENUM
- $KDSAMFILEALIASATTRTYPENUM $KDIRTYPEATTRTYPENUM
- $KPRIVATEDATAATTRTYPENUM $KREALNAMEATTRTYPENUM $KCOMMENTATTRTYPENUM
- $KDIRNATIVENAMEATTRTYPENUM $KDIRUSERKEYATTRTYPENUM
- $KDIRUSERRIDATTRTYPENUM $KLOCALKEYATTRTYPENUM $KLOCALNAMEATTRTYPENUM
- $KSFLAGSATTRTYPENUM $KDIRECTORIESATTRTYPENUM $KDIRECTORYATTRTYPENUM
- $KASSODIRECTORYATTRTYPENUM $KSTDSLOTINFOATTRTYPENUM
- $KMAILSERVICEATTRTYPENUM $KGATEWAYFILEIDATTRTYPENUM
- $KSLOTIDATTRTYPENUM $KMAILSETUPATTRTYPENUM $KTBSETUPATTRTYPENUM
- $KSHADOWSERVERATTRTYPENUM $KSHADOWSOFATTRTYPENUM
- $KUPDATETIMERATTRTYPENUM $KTIMESVRTYPEATTRTYPENUM
- $KLOCATIONATTRTYPENUM $KNETWORKSPECATTRTYPENUM $KPARENTCIDATTRTYPENUM
- $KSERVERSOFATTRTYPENUM $KMASTERNETSPECATTRTYPENUM
- $KMASTERPFATTRTYPENUM $KPREFMSGQATTRTYPENUM $KMSGQSATTRTYPENUM
- $KCERTIFICATEATTRTYPENUM $KDESCRIPTORATTRTYPENUM
- $KWRITELISTATTRTYPENUM $KREADLISTATTRTYPENUM $KOWNERSATTRTYPENUM
- $KFOREIGNATTRTYPENUM $KCONNECTATTRTYPENUM $KFWDRLOCALATTRTYPENUM
- $KCORESATTRTYPENUM $KHOMENETATTRTYPENUM $KDIALUPSLOTATTRTYPENUM
- $KQMAPPINGATTRTYPENUM $KNBPNAMEATTRTYPENUM $KTELEPHONEATTRTYPENUM
- $KAUTHKEYATTRTYPENUM $KPICTUREATTRTYPENUM $KADDRESSATTRTYPENUM
- $KPREFMAILATTRTYPENUM $KMAILSLOTSATTRTYPENUM $KADMINSATTRTYPENUM
- $KMEMBERATTRTYPENUM $KNUMOCERECTYPES $KLASTOCERECTYPENUM
- $KFIRSTOCERECTYPENUM $KAFPSERVICERECTYPENUM $KOTHERSERVICERECTYPENUM
- $KCOMBINEDRECTYPENUM $KMAILSERVICERECTYPENUM $KBUSINESSCARDRECTYPENUM
- $KATTRIBUTEVALUERECTYPENUM $KDSAMRECTYPENUM $KMSAMRECTYPENUM
- $KSETUPRECTYPENUM $KDNODERECTYPENUM $KDIRECTORYRECTYPENUM
- $KSERVERSETUPRECTYPENUM $KADAPDNODEREPRECTYPENUM
- $KADAPDNODERECTYPENUM $KADAPSERVERRECTYPENUM $KNETWORKSPECRECTYPENUM
- $KMNMFORWARDERRECTYPENUM $KMNMRECTYPENUM $KGROUPRECTYPENUM
- $KUSERRECTYPENUM $KOCEGETROOTPACKEDRLI $KOCEGETACCESSCONTROLDSSPEC
- $KOCENULLCID $KOCESTREAMPACKEDDSSPEC $KOCEPATHFINDERCID
- $KOCERTOPSTRING $KOCEPTORSTRING $KOCECTORSTRING $KOCEVALIDRSTRING
- $KOCEVALIDRLI $KOCEVALIDPACKEDRLI $KOCEVALIDPACKEDRECORDID
- $KOCEVALIDPACKEDPATHNAME $KOCEVALIDPACKEDDSSPEC $KOCEUNPACKRECORDID
- $KOCEUNPACKRLI $KOCEUNPACKPATHNAME $KOCEUNPACKDSSPEC
- $KOCESETCREATIONIDTONULL $KOCERELRSTRING $KOCEDNODENAMECOUNT
- $KOCEPACKEDRECORDIDSIZE $KOCEPACKEDRLISIZE $KOCEPACKEDRLIPARTSSIZE
- $KOCEPACKEDPATHNAMESIZE $KOCEPACKEDDSSPECSIZE $KOCEPACKRECORDID
- $KOCEPACKRLIPARTS $KOCEPACKRLI $KOCEPACKPATHNAME $KOCEPACKDSSPEC
- $KOCENEWSHORTRECORDID $KOCENEWRECORDID $KOCENEWRLI
- $KOCENEWLOCALRECORDID $KOCEISNULLPACKEDPATHNAME $KOCEGETXTNTYPE
- $KOCEGETINDRECORDTYPE $KOCEGETINDATTRIBUTETYPE $KOCEGETDSSPECINFO
- $KOCEEXTRACTALIAS $KOCEEQUALSHORTRECORDID $KOCEEQUALRSTRING
- $KOCEEQUALRLI $KOCEEQUALRECORDID $KOCEEQUALPACKEDRLI
- $KOCEEQUALPACKEDRECORDID $KOCEEQUALPACKEDPATHNAME
- $KOCEEQUALPACKEDDSSPEC $KOCEEQUALLOCALRECORDID $KOCEEQUALDSSPEC
- $KOCEEQUALDIRDISCRIMINATOR $KOCEEQUALCREATIONID $KOCEDUPLICATERLI
- $KOCECOPYSHORTRECORDID $KOCECOPYRECORDID $KOCECOPYRSTRING
- $KOCECOPYRLI $KOCECOPYPACKEDRECORDID $KOCECOPYPACKEDRLI
- $KOCECOPYPACKEDPATHNAME $KOCECOPYPACKEDDSSPEC $KOCECOPYLOCALRECORDID
- $KOCECOPYDIRDISCRIMINATOR $KOCECOPYCREATIONID))
- (provide-interface 'OCE)